/*
 * Stack.h
 *
 *  Created on: 29-06-2013
 *      Author: Jarek
 */

#ifndef STACK_H_
#define STACK_H_

#include "GlobalData.h"

template <typename TYPE>
class Stack
{
private:
	TYPE*		stack;
	uint		stackSize;
	uint		index;

public:
	Stack();
	Stack(uint size);
	virtual ~Stack();

	void 		push(const TYPE& type);
	void 		pop();
	void		clear();
	TYPE&		top() const;
	bool		isEmpty () const;
	uint		getSize() const;
	uint		getMaxSize() const;
};

#include "Stack.inl"

#endif /* STACK_H_ */
